domid_t dom, int bus, int dev, int func, int enable)
{
struct domain *p;
- struct exec_domain *ed;
+ struct exec_domain *ed, *edc;
struct pci_dev *pdev;
int i, j, rc = 0;
-
+
if ( !IS_PRIV(current->domain) )
BUG();
memset(ed->thread.io_bitmap, 0xFF, IOBMP_BYTES);
ed->thread.io_bitmap_sel = ~0ULL;
+
+ for_each_exec_domain(p, edc) {
+ if (edc == ed)
+ continue;
+ edc->thread.io_bitmap = ed->thread.io_bitmap;
+ }
}
for ( i = 0; i < DEVICE_COUNT_RESOURCE; i++ )
/* rights to IO memory regions are checked when the domain maps them */
}
+
+ for_each_exec_domain(p, edc) {
+ if (edc == ed)
+ continue;
+ edc->thread.io_bitmap_sel = ed->thread.io_bitmap_sel;
+ }
+
out:
put_domain(p);
return rc;